Extensible denotational language specifications
著者
1994
downloadが始まるので注意
web上でPDFで見れるものが見つからなかったmrsekut.icon
クソ雑概要
わからないなりのメモなので全く間違っているかもしれないので信用しないようにmrsekut.icon
関数型言語の表示的意味論の基礎を知らないとかなりキツそう
実際の純粋な関数は、環境を引数に取って、数値を表示する、のようなことをしているが、
そんなことをやっているとプログラマは大変なので、プログラム句(実際の文法)では環境は隠蔽されている
しかし、そうすると本当は環境を引数に取っているのにそれを表示していないということは、同じ入力してるっぽいのにも関わらず、異なる結果が生じてしまう
この論文では、表示部分は変えずに、純粋関数を定義できるEDLSを提案する
EDLSと対比して、従来のものをTraditional denotational language specificationsと呼ぶ
TDLSでは、プログラム上の句を
(Env, Store, Cont) -> (value, Store)というような関数として解釈する
For example, if a program phraseis purely functional and its free variables are always bound to effect-free procedures, it can be interpreted as a function mapping environments to values.
if節が何を言っているかわからないが、この場合は(Env)->(value)
Similarly, if an imperative program phrase does not use general control operators like callcc, goto, or catch and its free variables are always bound to valuesand procedures conforming to the same constraint, it can be interpreted as afunction mapping environments x stores into values x stores.
if節が何をいっているかわからないが、この場合は(Env,Store)->(value,Store)